home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #1 / Amiga Plus CD - 2000 - No. 1.iso / Tools / Dev / Meshwriter / MeshWriterTest / MeshWriterGUI.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-12-03  |  18.9 KB  |  887 lines

  1. #ifndef MAKE_ID
  2. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  3. #endif
  4.  
  5. /* Libraries */
  6. #include <libraries/mui.h>
  7. #include <libraries/gadtools.h> /* for Barlabel in MenuItem */
  8. #include <exec/memory.h>
  9.  
  10. /* Prototypes */
  11. #include <clib/muimaster_protos.h>
  12. #include <clib/exec_protos.h>
  13. #ifdef __GNUC__
  14. #include <proto/alib.h>
  15. #else
  16. #include <clib/alib_protos.h>
  17. #endif /* __GNUC__ */
  18.  
  19. #include "modules/modules.h"
  20. #include "MeshWriterGUI.h"
  21.  
  22. #ifndef WITHMWLLIB
  23. #include "/meshlib.h"
  24. #else
  25. #include <meshwriter/meshwriter.h>
  26. #include <pragma/meshwriter_lib.h>
  27. #endif
  28.  
  29. const char * meshshapes [] = {
  30.   "Ground",
  31.   "Circle",
  32.   "Checkboard",
  33.   "Pyramid",
  34.   "Cube",
  35.   "Cubetower",
  36.   "Wave",
  37.   "Ripples",
  38.   "Galaxy",
  39.   "Landscape",
  40.   "Pawn",
  41.   NULL
  42. };
  43.  
  44. struct ObjApp * CreateApp(void)
  45. {
  46.     struct ObjApp * ObjectApp;
  47.  
  48.     APTR    GROUP_ROOT_0, GR_GROUPS, GR_MESH, GR_COPYRIGHT, LA_COPYRIGHT, GR_FILE3D;
  49.     APTR    GR_FILEC, LA_FORMAT3D, LA_SAVEAS3D, LA_EXTENSION3D, Space_4, Space_5;
  50.     APTR    GR_FILE2D, GR_FILECC, LA_FORMAT2D, LA_VIEWTYPE2D, LA_DRAWMODE2D, LA_SAVEASC2D;
  51.     APTR    LA_EXTENSION2D, Space_6, Space_7, GROUP_ROOT_1, GR_CAMERA, GR_CPOSITION;
  52.     APTR    LA_CX, LA_CY, LA_CZ, GR_CLOOKAT, LA_CLX, LA_CLY, LA_CLZ, GR_LIGHT;
  53.     APTR    GR_LPOSITION, LA_LX, LA_LY, LA_LZ, GR_LCOLOR, LA_RED, LA_GREEN, LA_BLUE;
  54.  
  55.     if (!(ObjectApp = AllocVec(sizeof(struct ObjApp),MEMF_CLEAR)))
  56.         return(NULL);
  57.  
  58.     ObjectApp->CY_MESHContent = (char **)meshshapes;
  59.     ObjectApp->CY_FORMAT3DContent = (char **)MWL3DFileFormatNamesGet();
  60.     ObjectApp->CY_FORMAT2DContent = (char **)MWL2DFileFormatNamesGet();
  61.     ObjectApp->CY_DRAWMODE2DContent = (char **)MWLDrawModeNamesGet();
  62.  
  63.     ObjectApp->CY_VIEWTYPE2DContent[0] = "Top";
  64.     ObjectApp->CY_VIEWTYPE2DContent[1] = "Bottom";
  65.     ObjectApp->CY_VIEWTYPE2DContent[2] = "Left";
  66.     ObjectApp->CY_VIEWTYPE2DContent[3] = "Right";
  67.     ObjectApp->CY_VIEWTYPE2DContent[4] = "Front";
  68.     ObjectApp->CY_VIEWTYPE2DContent[5] = "Back";
  69.     ObjectApp->CY_VIEWTYPE2DContent[6] = "Perspective";
  70.     ObjectApp->CY_VIEWTYPE2DContent[7] = "4 sides";
  71.     ObjectApp->CY_VIEWTYPE2DContent[8] = NULL;
  72.  
  73.     ObjectApp->CY_MESH = CycleObject,
  74.         MUIA_HelpNode, "CY_MESH",
  75.         MUIA_Cycle_Entries, ObjectApp->CY_MESHContent,
  76.     End;
  77.  
  78.     ObjectApp->BT_CALCULATE = SimpleButton("Cal_culate");
  79.  
  80.     ObjectApp->BT_INFO = TextObject,
  81.         ButtonFrame,
  82.         MUIA_Disabled, TRUE,
  83.         MUIA_Background, MUII_ButtonBack,
  84.         MUIA_ControlChar, 'I',
  85.         MUIA_Text_Contents, "Information",
  86.         MUIA_Text_PreParse, "\033c",
  87.         MUIA_Text_HiChar, 'I',
  88.         MUIA_HelpNode, "BT_INFO",
  89.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  90.     End;
  91.  
  92.     ObjectApp->BT_CAMLIG = TextObject,
  93.         ButtonFrame,
  94.         MUIA_Disabled, TRUE,
  95.         MUIA_Background, MUII_ButtonBack,
  96.         MUIA_ControlChar, 'm',
  97.         MUIA_Text_Contents, "Camera & light",
  98.         MUIA_Text_PreParse, "\033c",
  99.         MUIA_Text_HiChar, 'm',
  100.         MUIA_HelpNode, "BT_CAMLIG",
  101.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  102.     End;
  103.  
  104.     ObjectApp->BT_NEW = TextObject,
  105.         ButtonFrame,
  106.         MUIA_Disabled, TRUE,
  107.         MUIA_Background, MUII_ButtonBack,
  108.         MUIA_ControlChar, 'N',
  109.         MUIA_Text_Contents, "New mesh",
  110.         MUIA_Text_PreParse, "\033c",
  111.         MUIA_Text_HiChar, 'N',
  112.         MUIA_HelpNode, "BT_NEW",
  113.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  114.     End;
  115.  
  116.     LA_COPYRIGHT = Label("Copyright");
  117.  
  118.     ObjectApp->STR_COPYRIGHT = StringObject,
  119.         MUIA_Disabled, TRUE,
  120.         MUIA_Frame, MUIV_Frame_String,
  121.         MUIA_HelpNode, "STR_COPYRIGHT",
  122.     End;
  123.  
  124.     GR_COPYRIGHT = GroupObject,
  125.         MUIA_HelpNode, "GR_COPYRIGHT",
  126.         MUIA_Group_Columns, 2,
  127.         Child, LA_COPYRIGHT,
  128.         Child, ObjectApp->STR_COPYRIGHT,
  129.     End;
  130.  
  131.     GR_MESH = GroupObject,
  132.         MUIA_HelpNode, "GR_MESH",
  133.         MUIA_Frame, MUIV_Frame_Button,
  134.         MUIA_FrameTitle, "Mesh",
  135.         Child, ObjectApp->CY_MESH,
  136.         Child, ObjectApp->BT_CALCULATE,
  137.         Child, ObjectApp->BT_INFO,
  138.         Child, ObjectApp->BT_CAMLIG,
  139.         Child, ObjectApp->BT_NEW,
  140.         Child, GR_COPYRIGHT,
  141.     End;
  142.  
  143.     LA_FORMAT3D = Label("Format");
  144.  
  145.     ObjectApp->CY_FORMAT3D = CycleObject,
  146.         MUIA_HelpNode, "CY_FORMAT3D",
  147.         MUIA_Disabled, TRUE,
  148.         MUIA_Cycle_Entries, ObjectApp->CY_FORMAT3DContent,
  149.     End;
  150.  
  151.     LA_SAVEAS3D = Label("Save As");
  152.  
  153.     ObjectApp->STR_PA_FILE3D = String("", 80);
  154.  
  155.     ObjectApp->PA_FILE3D = PopButton(MUII_PopUp);
  156.  
  157.     ObjectApp->PA_FILE3D = PopaslObject,
  158.         MUIA_HelpNode, "PA_FILE3D",
  159.         MUIA_Disabled, TRUE,
  160.         MUIA_Popasl_Type, 0,
  161.         MUIA_Popstring_String, ObjectApp->STR_PA_FILE3D,
  162.         MUIA_Popstring_Button, ObjectApp->PA_FILE3D,
  163.     End;
  164.  
  165.     LA_EXTENSION3D = Label("Extension");
  166.  
  167.     ObjectApp->STR_EXTENSION3D = StringObject,
  168.         MUIA_Disabled, TRUE,
  169.         MUIA_Frame, MUIV_Frame_String,
  170.         MUIA_HelpNode, "STR_EXTENSION3D",
  171.         MUIA_String_MaxLen, 10,
  172.     End;
  173.  
  174.     Space_4 = VSpace(0);
  175.  
  176.     Space_5 = VSpace(0);
  177.  
  178.     GR_FILEC = GroupObject,
  179.         MUIA_HelpNode, "GR_FILEC",
  180.         MUIA_Group_Columns, 2,
  181.         Child, LA_FORMAT3D,
  182.         Child, ObjectApp->CY_FORMAT3D,
  183.         Child, LA_SAVEAS3D,
  184.         Child, ObjectApp->PA_FILE3D,
  185.         Child, LA_EXTENSION3D,
  186.         Child, ObjectApp->STR_EXTENSION3D,
  187.         Child, Space_4,
  188.         Child, Space_5,
  189.     End;
  190.  
  191.     ObjectApp->BT_SAVE3D = TextObject,
  192.         ButtonFrame,
  193.         MUIA_Disabled, TRUE,
  194.         MUIA_Background, MUII_ButtonBack,
  195.         MUIA_ControlChar, '3',
  196.         MUIA_Text_Contents, "Save 3D",
  197.         MUIA_Text_PreParse, "\033c",
  198.         MUIA_Text_HiChar, '3',
  199.         MUIA_HelpNode, "BT_SAVE3D",
  200.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  201.     End;
  202.  
  203.     GR_FILE3D = GroupObject,
  204.         MUIA_HelpNode, "GR_FILE3D",
  205.         MUIA_Frame, MUIV_Frame_Button,
  206.         MUIA_FrameTitle, "3D File",
  207.         Child, GR_FILEC,
  208.         Child, ObjectApp->BT_SAVE3D,
  209.     End;
  210.  
  211.     LA_FORMAT2D = Label("Format");
  212.  
  213.     ObjectApp->CY_FORMAT2D = CycleObject,
  214.         MUIA_HelpNode, "CY_FORMAT2D",
  215.         MUIA_Disabled, TRUE,
  216.         MUIA_Cycle_Entries, ObjectApp->CY_FORMAT2DContent,
  217.     End;
  218.  
  219.     LA_VIEWTYPE2D = Label("Viewtype");
  220.  
  221.     ObjectApp->CY_VIEWTYPE2D = CycleObject,
  222.         MUIA_HelpNode, "CY_VIEWTYPE2D",
  223.         MUIA_Disabled, TRUE,
  224.         MUIA_Cycle_Entries, ObjectApp->CY_VIEWTYPE2DContent,
  225.     End;
  226.  
  227.     LA_DRAWMODE2D = Label("Drawmode");
  228.  
  229.     ObjectApp->CY_DRAWMODE2D = CycleObject,
  230.         MUIA_HelpNode, "CY_DRAWMODE2D",
  231.         MUIA_Disabled, TRUE,
  232.         MUIA_Cycle_Entries, ObjectApp->CY_DRAWMODE2DContent,
  233.     End;
  234.  
  235.     LA_SAVEASC2D = Label("Save As");
  236.  
  237.     ObjectApp->STR_PA_FILE2D = String("", 80);
  238.  
  239.     ObjectApp->PA_FILE2D = PopButton(MUII_PopUp);
  240.  
  241.     ObjectApp->PA_FILE2D = PopaslObject,
  242.         MUIA_HelpNode, "PA_FILE2D",
  243.         MUIA_Disabled, TRUE,
  244.         MUIA_Popasl_Type, 0,
  245.         MUIA_Popstring_String, ObjectApp->STR_PA_FILE2D,
  246.         MUIA_Popstring_Button, ObjectApp->PA_FILE2D,
  247.     End;
  248.  
  249.     LA_EXTENSION2D = Label("Extension");
  250.  
  251.     ObjectApp->STR_EXTENSION2D = StringObject,
  252.         MUIA_Disabled, TRUE,
  253.         MUIA_Frame, MUIV_Frame_String,
  254.         MUIA_HelpNode, "STR_EXTENSION2D",
  255.         MUIA_String_MaxLen, 10,
  256.     End;
  257.  
  258.     Space_6 = VSpace(0);
  259.  
  260.     Space_7 = VSpace(0);
  261.  
  262.     GR_FILECC = GroupObject,
  263.         MUIA_HelpNode, "GR_FILECC",
  264.         MUIA_Group_Columns, 2,
  265.         Child, LA_FORMAT2D,
  266.         Child, ObjectApp->CY_FORMAT2D,
  267.         Child, LA_VIEWTYPE2D,
  268.         Child, ObjectApp->CY_VIEWTYPE2D,
  269.         Child, LA_DRAWMODE2D,
  270.         Child, ObjectApp->CY_DRAWMODE2D,
  271.         Child, LA_SAVEASC2D,
  272.         Child, ObjectApp->PA_FILE2D,
  273.         Child, LA_EXTENSION2D,
  274.         Child, ObjectApp->STR_EXTENSION2D,
  275.         Child, Space_6,
  276.         Child, Space_7,
  277.     End;
  278.  
  279.     ObjectApp->BT_SAVE2D = TextObject,
  280.         ButtonFrame,
  281.         MUIA_Disabled, TRUE,
  282.         MUIA_Background, MUII_ButtonBack,
  283.         MUIA_ControlChar, '2',
  284.         MUIA_Text_Contents, "Save 2D",
  285.         MUIA_Text_PreParse, "\033c",
  286.         MUIA_Text_HiChar, '2',
  287.         MUIA_HelpNode, "BT_SAVE2D",
  288.         MUIA_InputMode, MUIV_InputMode_RelVerify,
  289.     End;
  290.  
  291.     GR_FILE2D = GroupObject,
  292.         MUIA_HelpNode, "GR_FILE2D",
  293.         MUIA_Frame, MUIV_Frame_Button,
  294.         MUIA_FrameTitle, "2D File",
  295.         Child, GR_FILECC,
  296.         Child, ObjectApp->BT_SAVE2D,
  297.     End;
  298.  
  299.     GR_GROUPS = GroupObject,
  300.         MUIA_HelpNode, "GR_GROUPS",
  301.         MUIA_Group_Columns, 3,
  302.         Child, GR_MESH,
  303.         Child, GR_FILE3D,
  304.         Child, GR_FILE2D,
  305.     End;
  306.  
  307.     ObjectApp->BT_ABOUT = SimpleButton("_About");
  308.  
  309.     GROUP_ROOT_0 = GroupObject,
  310.         Child, GR_GROUPS,
  311.         Child, ObjectApp->BT_ABOUT,
  312.     End;
  313.  
  314.     ObjectApp->WI_MAIN = WindowObject,
  315.         MUIA_Window_Title, "MeshWriter",
  316.         MUIA_Window_ID, MAKE_ID('0', 'W', 'I', 'N'),
  317.         MUIA_Window_NoMenus, TRUE,
  318.         WindowContents, GROUP_ROOT_0,
  319.     End;
  320.  
  321.     LA_CX = Label("X");
  322.  
  323.     ObjectApp->STR_CX = StringObject,
  324.         MUIA_Frame, MUIV_Frame_String,
  325.         MUIA_HelpNode, "STR_CX",
  326.     End;
  327.  
  328.     LA_CY = Label("Y");
  329.  
  330.     ObjectApp->STR_CY = StringObject,
  331.         MUIA_Frame, MUIV_Frame_String,
  332.         MUIA_HelpNode, "STR_CY",
  333.     End;
  334.  
  335.     LA_CZ = Label("Z");
  336.  
  337.     ObjectApp->STR_CZ = StringObject,
  338.         MUIA_Frame, MUIV_Frame_String,
  339.         MUIA_HelpNode, "STR_CZ",
  340.     End;
  341.  
  342.     GR_CPOSITION = GroupObject,
  343.         MUIA_HelpNode, "GR_CPOSITION",
  344.         MUIA_Frame, MUIV_Frame_Button,
  345.         MUIA_FrameTitle, "Position",
  346.         MUIA_Group_Columns, 2,
  347.         Child, LA_CX,
  348.         Child, ObjectApp->STR_CX,
  349.         Child, LA_CY,
  350.         Child, ObjectApp->STR_CY,
  351.         Child, LA_CZ,
  352.         Child, ObjectApp->STR_CZ,
  353.     End;
  354.  
  355.     LA_CLX = Label("X");
  356.  
  357.     ObjectApp->STR_CLX = StringObject,
  358.         MUIA_Frame, MUIV_Frame_String,
  359.         MUIA_HelpNode, "STR_CLX",
  360.     End;
  361.  
  362.     LA_CLY = Label("Y");
  363.  
  364.     ObjectApp->STR_CLY = StringObject,
  365.         MUIA_Frame, MUIV_Frame_String,
  366.         MUIA_HelpNode, "STR_CLY",
  367.     End;
  368.  
  369.     LA_CLZ = Label("Z");
  370.  
  371.     ObjectApp->STR_CLZ = StringObject,
  372.         MUIA_Frame, MUIV_Frame_String,
  373.         MUIA_HelpNode, "STR_CLZ",
  374.     End;
  375.  
  376.     GR_CLOOKAT = GroupObject,
  377.         MUIA_HelpNode, "GR_CLOOKAT",
  378.         MUIA_Frame, MUIV_Frame_Button,
  379.         MUIA_FrameTitle, "Look at",
  380.         MUIA_Group_Columns, 2,
  381.         Child, LA_CLX,
  382.         Child, ObjectApp->STR_CLX,
  383.         Child, LA_CLY,
  384.         Child, ObjectApp->STR_CLY,
  385.         Child, LA_CLZ,
  386.         Child, ObjectApp->STR_CLZ,
  387.     End;
  388.  
  389.     GR_CAMERA = GroupObject,
  390.         MUIA_HelpNode, "GR_CAMERA",
  391.         MUIA_Frame, MUIV_Frame_Button,
  392.         MUIA_FrameTitle, "Camera",
  393.         MUIA_Group_Columns, 2,
  394.         Child, GR_CPOSITION,
  395.         Child, GR_CLOOKAT,
  396.     End;
  397.  
  398.     LA_LX = Label("X");
  399.  
  400.     ObjectApp->STR_LX = StringObject,
  401.         MUIA_Frame, MUIV_Frame_String,
  402.         MUIA_HelpNode, "STR_LX",
  403.     End;
  404.  
  405.     LA_LY = Label("Y");
  406.  
  407.     ObjectApp->STR_LY = StringObject,
  408.         MUIA_Frame, MUIV_Frame_String,
  409.         MUIA_HelpNode, "STR_LY",
  410.     End;
  411.  
  412.     LA_LZ = Label("Z");
  413.  
  414.     ObjectApp->STR_LZ = StringObject,
  415.         MUIA_Frame, MUIV_Frame_String,
  416.         MUIA_HelpNode, "STR_LZ",
  417.     End;
  418.  
  419.     GR_LPOSITION = GroupObject,
  420.         MUIA_HelpNode, "GR_LPOSITION",
  421.         MUIA_Frame, MUIV_Frame_Button,
  422.         MUIA_FrameTitle, "Position",
  423.         MUIA_Group_Columns, 2,
  424.         Child, LA_LX,
  425.         Child, ObjectApp->STR_LX,
  426.         Child, LA_LY,
  427.         Child, ObjectApp->STR_LY,
  428.         Child, LA_LZ,
  429.         Child, ObjectApp->STR_LZ,
  430.     End;
  431.  
  432.     LA_RED = Label("Red");
  433.  
  434.     ObjectApp->SL_RED = SliderObject,
  435.         MUIA_HelpNode, "SL_RED",
  436.         MUIA_Frame, MUIV_Frame_Slider,
  437.         MUIA_Slider_Min, 0,
  438.         MUIA_Slider_Max, 255,
  439.         MUIA_Slider_Level, 0,
  440.     End;
  441.  
  442.     LA_GREEN = Label("Green");
  443.  
  444.     ObjectApp->SL_GREEN = SliderObject,
  445.         MUIA_HelpNode, "SL_GREEN",
  446.         MUIA_Frame, MUIV_Frame_Slider,
  447.         MUIA_Slider_Min, 0,
  448.         MUIA_Slider_Max, 255,
  449.         MUIA_Slider_Level, 0,
  450.     End;
  451.  
  452.     LA_BLUE = Label("Blue");
  453.  
  454.     ObjectApp->SL_BLUE = SliderObject,
  455.         MUIA_HelpNode, "SL_BLUE",
  456.         MUIA_Weight, 0,
  457.         MUIA_Frame, MUIV_Frame_Slider,
  458.         MUIA_Slider_Min, 0,
  459.         MUIA_Slider_Max, 255,
  460.         MUIA_Slider_Level, 0,
  461.     End;
  462.  
  463.     GR_LCOLOR = GroupObject,
  464.         MUIA_HelpNode, "GR_LCOLOR",
  465.         MUIA_Frame, MUIV_Frame_Button,
  466.         MUIA_FrameTitle, "Color",
  467.         MUIA_Group_Columns, 2,
  468.         Child, LA_RED,
  469.         Child, ObjectApp->SL_RED,
  470.         Child, LA_GREEN,
  471.         Child, ObjectApp->SL_GREEN,
  472.         Child, LA_BLUE,
  473.         Child, ObjectApp->SL_BLUE,
  474.     End;
  475.  
  476.     GR_LIGHT = GroupObject,
  477.         MUIA_HelpNode, "GR_LIGHT",
  478.         MUIA_Frame, MUIV_Frame_Button,
  479.         MUIA_FrameTitle, "Light",
  480.         MUIA_Group_Columns, 2,
  481.         Child, GR_LPOSITION,
  482.         Child, GR_LCOLOR,
  483.     End;
  484.  
  485.     GROUP_ROOT_1 = GroupObject,
  486.         Child, GR_CAMERA,
  487.         Child, GR_LIGHT,
  488.     End;
  489.  
  490.     ObjectApp->WI_CAMLIG = WindowObject,
  491.         MUIA_Window_Title, "Camera and light",
  492.         MUIA_Window_ID, MAKE_ID('1', 'W', 'I', 'N'),
  493.         WindowContents, GROUP_ROOT_1,
  494.     End;
  495.  
  496.     ObjectApp->App = ApplicationObject,
  497.         MUIA_Application_Author, "Stephan Bielmann",
  498.         MUIA_Application_Base, "MeshWriter",
  499.         MUIA_Application_Title, "MeshWriter",
  500.         MUIA_Application_Version, "$VER: MeshWriter 1.10 (27.03.99)",
  501.         MUIA_Application_Copyright, "Stephan Bielmann",
  502.         MUIA_Application_Description, "MeshWriter library testprogram",
  503.         MUIA_Application_HelpFile, "MeshWriter.guide",
  504.         SubWindow, ObjectApp->WI_MAIN,
  505.         SubWindow, ObjectApp->WI_CAMLIG,
  506.     End;
  507.  
  508.  
  509.     if (!ObjectApp->App)
  510.     {
  511.         FreeVec(ObjectApp);
  512.         return(NULL);
  513.     }
  514.  
  515.     DoMethod(ObjectApp->WI_MAIN,
  516.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  517.         ObjectApp->App,
  518.         2,
  519.         MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit
  520.         );
  521.  
  522.     DoMethod(ObjectApp->WI_MAIN,
  523.         MUIM_Notify, MUIA_Window_Activate, TRUE,
  524.         ObjectApp->App,
  525.         2,
  526.         MUIM_Application_ReturnID, ID_CAMLIGACT
  527.         );
  528.  
  529.     DoMethod(ObjectApp->BT_CALCULATE,
  530.         MUIM_Notify, MUIA_Pressed, FALSE,
  531.         ObjectApp->BT_CALCULATE,
  532.         3,
  533.         MUIM_Set, MUIA_Disabled, TRUE
  534.         );
  535.  
  536.     DoMethod(ObjectApp->BT_CALCULATE,
  537.         MUIM_Notify, MUIA_Pressed, FALSE,
  538.         ObjectApp->PA_FILE3D,
  539.         3,
  540.         MUIM_Set, MUIA_Disabled, FALSE
  541.         );
  542.  
  543.     DoMethod(ObjectApp->BT_CALCULATE,
  544.         MUIM_Notify, MUIA_Pressed, FALSE,
  545.         ObjectApp->BT_SAVE3D,
  546.         3,
  547.         MUIM_Set, MUIA_Disabled, FALSE
  548.         );
  549.  
  550.     DoMethod(ObjectApp->BT_CALCULATE,
  551.         MUIM_Notify, MUIA_Pressed, FALSE,
  552.         ObjectApp->BT_NEW,
  553.         3,
  554.         MUIM_Set, MUIA_Disabled, FALSE
  555.         );
  556.  
  557.     DoMethod(ObjectApp->BT_CALCULATE,
  558.         MUIM_Notify, MUIA_Pressed, FALSE,
  559.         ObjectApp->BT_INFO,
  560.         3,
  561.         MUIM_Set, MUIA_Disabled, FALSE
  562.         );
  563.  
  564.     DoMethod(ObjectApp->BT_CALCULATE,
  565.         MUIM_Notify, MUIA_Pressed, FALSE,
  566.         ObjectApp->CY_FORMAT3D,
  567.         3,
  568.         MUIM_Set, MUIA_Disabled, FALSE
  569.         );
  570.  
  571.     DoMethod(ObjectApp->BT_CALCULATE,
  572.         MUIM_Notify, MUIA_Pressed, FALSE,
  573.         ObjectApp->CY_MESH,
  574.         3,
  575.         MUIM_Set, MUIA_Disabled, TRUE
  576.         );
  577.  
  578.     DoMethod(ObjectApp->BT_CALCULATE,
  579.         MUIM_Notify, MUIA_Pressed, FALSE,
  580.         ObjectApp->STR_EXTENSION3D,
  581.         3,
  582.         MUIM_Set, MUIA_Disabled, FALSE
  583.         );
  584.  
  585.     DoMethod(ObjectApp->BT_CALCULATE,
  586.         MUIM_Notify, MUIA_Pressed, FALSE,
  587.         ObjectApp->STR_COPYRIGHT,
  588.         3,
  589.         MUIM_Set, MUIA_Disabled, FALSE
  590.         );
  591.  
  592.     DoMethod(ObjectApp->BT_CALCULATE,
  593.         MUIM_Notify, MUIA_Pressed, FALSE,
  594.         ObjectApp->BT_CAMLIG,
  595.         3,
  596.         MUIM_Set, MUIA_Disabled, FALSE
  597.         );
  598.  
  599.     DoMethod(ObjectApp->BT_CALCULATE,
  600.         MUIM_Notify, MUIA_Pressed, FALSE,
  601.         ObjectApp->CY_FORMAT2D,
  602.         3,
  603.         MUIM_Set, MUIA_Disabled, FALSE
  604.         );
  605.  
  606.     DoMethod(ObjectApp->BT_CALCULATE,
  607.         MUIM_Notify, MUIA_Pressed, FALSE,
  608.         ObjectApp->CY_VIEWTYPE2D,
  609.         3,
  610.         MUIM_Set, MUIA_Disabled, FALSE
  611.         );
  612.  
  613.     DoMethod(ObjectApp->BT_CALCULATE,
  614.         MUIM_Notify, MUIA_Pressed, FALSE,
  615.         ObjectApp->PA_FILE2D,
  616.         3,
  617.         MUIM_Set, MUIA_Disabled, FALSE
  618.         );
  619.  
  620.     DoMethod(ObjectApp->BT_CALCULATE,
  621.         MUIM_Notify, MUIA_Pressed, FALSE,
  622.         ObjectApp->STR_EXTENSION2D,
  623.         3,
  624.         MUIM_Set, MUIA_Disabled, FALSE
  625.         );
  626.  
  627.     DoMethod(ObjectApp->BT_CALCULATE,
  628.         MUIM_Notify, MUIA_Pressed, FALSE,
  629.         ObjectApp->BT_SAVE2D,
  630.         3,
  631.         MUIM_Set, MUIA_Disabled, FALSE
  632.         );
  633.  
  634.     DoMethod(ObjectApp->BT_CALCULATE,
  635.         MUIM_Notify, MUIA_Pressed, FALSE,
  636.         ObjectApp->CY_DRAWMODE2D,
  637.         3,
  638.         MUIM_Set, MUIA_Disabled, FALSE
  639.         );
  640.  
  641.     DoMethod(ObjectApp->BT_CALCULATE,
  642.         MUIM_Notify, MUIA_Pressed, FALSE,
  643.         ObjectApp->App,
  644.         2,
  645.         MUIM_Application_ReturnID, ID_CALCULATE
  646.         );
  647.  
  648.     DoMethod(ObjectApp->BT_INFO,
  649.         MUIM_Notify, MUIA_Pressed, FALSE,
  650.         ObjectApp->App,
  651.         2,
  652.         MUIM_Application_ReturnID, ID_INFO
  653.         );
  654.  
  655.     DoMethod(ObjectApp->BT_CAMLIG,
  656.         MUIM_Notify, MUIA_Pressed, FALSE,
  657.         ObjectApp->WI_CAMLIG,
  658.         3,
  659.         MUIM_Set, MUIA_Window_Open, TRUE
  660.         );
  661.  
  662.     DoMethod(ObjectApp->BT_CAMLIG,
  663.         MUIM_Notify, MUIA_Pressed, FALSE,
  664.         ObjectApp->App,
  665.         2,
  666.         MUIM_Application_ReturnID, ID_OPENCAMLIG
  667.         );
  668.  
  669.     DoMethod(ObjectApp->BT_NEW,
  670.         MUIM_Notify, MUIA_Pressed, FALSE,
  671.         ObjectApp->App,
  672.         2,
  673.         MUIM_Application_ReturnID, ID_NEW
  674.         );
  675.  
  676.     DoMethod(ObjectApp->BT_NEW,
  677.         MUIM_Notify, MUIA_Pressed, TRUE,
  678.         ObjectApp->BT_CALCULATE,
  679.         3,
  680.         MUIM_Set, MUIA_Disabled, FALSE
  681.         );
  682.  
  683.     DoMethod(ObjectApp->BT_NEW,
  684.         MUIM_Notify, MUIA_Pressed, TRUE,
  685.         ObjectApp->CY_FORMAT3D,
  686.         3,
  687.         MUIM_Set, MUIA_Disabled, TRUE
  688.         );
  689.  
  690.     DoMethod(ObjectApp->BT_NEW,
  691.         MUIM_Notify, MUIA_Pressed, TRUE,
  692.         ObjectApp->PA_FILE3D,
  693.         3,
  694.         MUIM_Set, MUIA_Disabled, TRUE
  695.         );
  696.  
  697.     DoMethod(ObjectApp->BT_NEW,
  698.         MUIM_Notify, MUIA_Pressed, TRUE,
  699.         ObjectApp->STR_EXTENSION3D,
  700.         3,
  701.         MUIM_Set, MUIA_Disabled, TRUE
  702.         );
  703.  
  704.     DoMethod(ObjectApp->BT_NEW,
  705.         MUIM_Notify, MUIA_Pressed, TRUE,
  706.         ObjectApp->BT_SAVE3D,
  707.         3,
  708.         MUIM_Set, MUIA_Disabled, TRUE
  709.         );
  710.  
  711.     DoMethod(ObjectApp->BT_NEW,
  712.         MUIM_Notify, MUIA_Pressed, FALSE,
  713.         ObjectApp->BT_NEW,
  714.         3,
  715.         MUIM_Set, MUIA_Disabled, TRUE
  716.         );
  717.  
  718.     DoMethod(ObjectApp->BT_NEW,
  719.         MUIM_Notify, MUIA_Pressed, TRUE,
  720.         ObjectApp->BT_INFO,
  721.         3,
  722.         MUIM_Set, MUIA_Disabled, TRUE
  723.         );
  724.  
  725.     DoMethod(ObjectApp->BT_NEW,
  726.         MUIM_Notify, MUIA_Pressed, FALSE,
  727.         ObjectApp->CY_MESH,
  728.         3,
  729.         MUIM_Set, MUIA_Disabled, FALSE
  730.         );
  731.  
  732.     DoMethod(ObjectApp->BT_NEW,
  733.         MUIM_Notify, MUIA_Pressed, TRUE,
  734.         ObjectApp->STR_COPYRIGHT,
  735.         3,
  736.         MUIM_Set, MUIA_Disabled, TRUE
  737.         );
  738.  
  739.     DoMethod(ObjectApp->BT_NEW,
  740.         MUIM_Notify, MUIA_Pressed, TRUE,
  741.         ObjectApp->BT_CAMLIG,
  742.         3,
  743.         MUIM_Set, MUIA_Disabled, TRUE
  744.         );
  745.  
  746.     DoMethod(ObjectApp->BT_NEW,
  747.         MUIM_Notify, MUIA_Pressed, TRUE,
  748.         ObjectApp->CY_FORMAT2D,
  749.         3,
  750.         MUIM_Set, MUIA_Disabled, TRUE
  751.         );
  752.  
  753.     DoMethod(ObjectApp->BT_NEW,
  754.         MUIM_Notify, MUIA_Pressed, TRUE,
  755.         ObjectApp->CY_VIEWTYPE2D,
  756.         3,
  757.         MUIM_Set, MUIA_Disabled, TRUE
  758.         );
  759.  
  760.     DoMethod(ObjectApp->BT_NEW,
  761.         MUIM_Notify, MUIA_Pressed, TRUE,
  762.         ObjectApp->PA_FILE2D,
  763.         3,
  764.         MUIM_Set, MUIA_Disabled, TRUE
  765.         );
  766.  
  767.     DoMethod(ObjectApp->BT_NEW,
  768.         MUIM_Notify, MUIA_Pressed, TRUE,
  769.         ObjectApp->STR_EXTENSION2D,
  770.         3,
  771.         MUIM_Set, MUIA_Disabled, TRUE
  772.         );
  773.  
  774.     DoMethod(ObjectApp->BT_NEW,
  775.         MUIM_Notify, MUIA_Pressed, TRUE,
  776.         ObjectApp->BT_SAVE2D,
  777.         3,
  778.         MUIM_Set, MUIA_Disabled, TRUE
  779.         );
  780.  
  781.     DoMethod(ObjectApp->BT_NEW,
  782.         MUIM_Notify, MUIA_Pressed, TRUE,
  783.         ObjectApp->CY_DRAWMODE2D,
  784.         3,
  785.         MUIM_Set, MUIA_Disabled, TRUE
  786.         );
  787.  
  788.     DoMethod(ObjectApp->CY_FORMAT3D,
  789.         MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime,
  790.         ObjectApp->App,
  791.         2,
  792.         MUIM_Application_ReturnID, ID_FORMAT3D
  793.         );
  794.  
  795.     DoMethod(ObjectApp->BT_SAVE3D,
  796.         MUIM_Notify, MUIA_Pressed, FALSE,
  797.         ObjectApp->App,
  798.         2,
  799.         MUIM_Application_ReturnID, ID_SAVE3D
  800.         );
  801.  
  802.     DoMethod(ObjectApp->CY_FORMAT2D,
  803.         MUIM_Notify, MUIA_Cycle_Active, MUIV_EveryTime,
  804.         ObjectApp->App,
  805.         2,
  806.         MUIM_Application_ReturnID, ID_FORMAT2D
  807.         );
  808.  
  809.     DoMethod(ObjectApp->BT_SAVE2D,
  810.         MUIM_Notify, MUIA_Pressed, FALSE,
  811.         ObjectApp->App,
  812.         2,
  813.         MUIM_Application_ReturnID, ID_SAVE2D
  814.         );
  815.  
  816.     DoMethod(ObjectApp->BT_ABOUT,
  817.         MUIM_Notify, MUIA_Pressed, FALSE,
  818.         ObjectApp->App,
  819.         2,
  820.         MUIM_Application_ReturnID, ID_ABOUT
  821.         );
  822.  
  823.     DoMethod(ObjectApp->WI_MAIN,
  824.         MUIM_Window_SetCycleChain, ObjectApp->CY_MESH,
  825.         ObjectApp->BT_CALCULATE,
  826.         ObjectApp->BT_INFO,
  827.         ObjectApp->BT_CAMLIG,
  828.         ObjectApp->BT_NEW,
  829.         ObjectApp->STR_COPYRIGHT,
  830.         ObjectApp->CY_FORMAT3D,
  831.         ObjectApp->PA_FILE3D,
  832.         ObjectApp->STR_EXTENSION3D,
  833.         ObjectApp->BT_SAVE3D,
  834.         ObjectApp->CY_FORMAT2D,
  835.         ObjectApp->CY_VIEWTYPE2D,
  836.         ObjectApp->CY_DRAWMODE2D,
  837.         ObjectApp->PA_FILE2D,
  838.         ObjectApp->STR_EXTENSION2D,
  839.         ObjectApp->BT_SAVE2D,
  840.         ObjectApp->BT_ABOUT,
  841.         0
  842.         );
  843.  
  844.     DoMethod(ObjectApp->WI_CAMLIG,
  845.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  846.         ObjectApp->App,
  847.         2,
  848.         MUIM_Application_ReturnID, ID_CANCELCAMLIG
  849.         );
  850.  
  851.     DoMethod(ObjectApp->WI_CAMLIG,
  852.         MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
  853.         ObjectApp->WI_CAMLIG,
  854.         3,
  855.         MUIM_Set, MUIA_Window_Open, FALSE
  856.         );
  857.  
  858.     DoMethod(ObjectApp->WI_CAMLIG,
  859.         MUIM_Window_SetCycleChain, ObjectApp->STR_CX,
  860.         ObjectApp->STR_CY,
  861.         ObjectApp->STR_CZ,
  862.         ObjectApp->STR_CLX,
  863.         ObjectApp->STR_CLY,
  864.         ObjectApp->STR_CLZ,
  865.         ObjectApp->STR_LX,
  866.         ObjectApp->STR_LY,
  867.         ObjectApp->STR_LZ,
  868.         ObjectApp->SL_RED,
  869.         ObjectApp->SL_GREEN,
  870.         ObjectApp->SL_BLUE,
  871.         0
  872.         );
  873.  
  874.     set(ObjectApp->WI_MAIN,
  875.         MUIA_Window_Open, TRUE
  876.         );
  877.  
  878.  
  879.     return(ObjectApp);
  880. }
  881.  
  882. void DisposeApp(struct ObjApp * ObjectApp)
  883. {
  884.     MUI_DisposeObject(ObjectApp->App);
  885.     FreeVec(ObjectApp);
  886. }
  887.